package Iterator_pattern.ex2;

import lombok.Getter;

import java.util.ArrayList;
import java.util.List;

/**
 * @author 申书航
 * @version 1.0
 * 学生仓库类，负责管理学生信息并提供迭代器
 */
public class StudentRepo {

    @Getter
    private final List<Student> students;

    /**
     * 构造函数，初始化学生列表并添加33名学生
     */
    public StudentRepo() {
        students = new ArrayList<Student>();
        for (int i = 0; i < 33; i++) {
            students.add(new Student.StudentBuilder()
                    .id(i)  // 学生ID从0开始
                    .age(10 + i)    // 学生年龄从10开始
                    .name("Student " + i)   // 学生姓名为"Student" + 学生ID
                    .score(30 + i)  // 学生成绩从30开始
                    .build());  // 创建学生对象并添加到学生列表中
        }
    }

    /**
     * 创建并返回一个学生页面迭代器
     * @return StudentPageIterator 学生页面迭代器
     */
    public PageIterator iterator() {
        return new StudentPageIterator(this);
    }
}
